MCP 문서 관리

메뉴

KiCad MCP

KiCad MCP

KiCad MCP는 KiCad 전자 설계 자동화(EDA) 소프트웨어와 Claude AI를 연결하는 Model Context Protocol(MCP) 서버입니다. 이 서버를 통해 LLM은 KiCad 프로젝트를 분석하고, 회로도를 검증하며, PCB 설계를 시각화하고, 설계 규칙 검사(DRC)를 수행할 수 있습니다. 자연어 명령을 통해 복잡한 PCB 설계 작업을 자동화하고, AI 기반 회로 패턴 인식을 제공하여 설계 품질을 향상시키는 도구입니다.

특징

  • 프로젝트 관리: KiCad 프로젝트 목록화, 검사, 열기 기능
  • 회로도 분석: 회로도 구성요소 검색 및 연결 관계 분석
  • PCB 시각화: PCB 디자인 시각화 및 레이어별 정보 제공
  • 설계 규칙 검사(DRC): 자동 DRC 실행 및 위반 사항 보고
  • 회로 패턴 인식: 일반적인 회로 블록 자동 식별 및 분석
  • 부품 목록(BOM) 관리: 부품 목록 생성 및 분석
  • 다중 플랫폼 지원: Mac, Windows, Linux 환경에서 작동
  • 자연어 명령: 자연어 기반 PCB 설계 워크플로우 지원
  • KiCad CLI 통합: KiCad 명령줄 도구를 활용한 자동화

API

도구

프로젝트 관리

  • list_projects: 사용 가능한 KiCad 프로젝트 목록 조회
  • 입력: 검색 경로(선택적)
  • 출력: 프로젝트 경로 및 이름 목록

  • open_project: KiCad에서 프로젝트 열기

  • 입력: 프로젝트 경로
  • 출력: 열기 성공 여부

  • get_project_info: 프로젝트 정보 조회

  • 입력: 프로젝트 경로
  • 출력: 프로젝트 메타데이터(파일, 회로도, PCB 등)

회로도 분석

  • analyze_schematic: 회로도 분석
  • 입력: 프로젝트 경로
  • 출력: 회로도 구성요소 및 연결 정보

  • identify_circuit_patterns: 회로 패턴 인식

  • 입력: 프로젝트 경로
  • 출력: 식별된 회로 패턴 목록 및 설명

  • get_component_info: 특정 부품 정보 조회

  • 입력: 프로젝트 경로, 부품 참조 지정자
  • 출력: 부품 상세 정보

PCB 및 설계 규칙

  • analyze_pcb: PCB 레이아웃 분석
  • 입력: 프로젝트 경로
  • 출력: PCB 레이어, 트레이스, 비아 등의 정보

  • run_drc: 설계 규칙 검사(DRC) 실행

  • 입력: 프로젝트 경로
  • 출력: DRC 위반 사항 목록 및 설명

  • generate_bom: 부품 목록(BOM) 생성

  • 입력: 프로젝트 경로
  • 출력: 부품 목록 및 분류

사용 방법

설치

# 저장소 복제
git clone https://github.com/lamaalrajih/kicad-mcp.git

# 가상 환경 생성 및 활성화
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 의존성 설치
pip install -r requirements.txt

구성

KiCad 프로젝트 경로 설정:

# 환경 설정 파일 복사
cp .env.example .env

# 환경 설정 파일 편집
# KICAD_SEARCH_PATHS=~/pcb,~/Electronics,~/Projects/KiCad

Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정합니다:

{
  "mcpServers": {
    "kicad": {
      "command": "/path/to/venv/bin/python",
      "args": ["/path/to/kicad-mcp/main.py"]
    }
  }
}

필요 조건

  • KiCad: 7.0 이상
  • Python: 3.8 이상
  • kicad-cli: KiCad 명령줄 도구
  • OS: macOS, Windows, Linux 지원

사용 예시

// 사용 가능한 KiCad 프로젝트 목록 조회
const projects = await list_projects();
console.log(`사용 가능한 프로젝트: ${projects.length}개`);

// 특정 프로젝트 정보 조회
const projectInfo = await get_project_info("/path/to/project.kicad_pro");
console.log(`프로젝트 이름: ${projectInfo.name}`);
console.log(`회로도 파일: ${projectInfo.schematic_files.join(", ")}`);

// 회로도 분석
const schematicAnalysis = await analyze_schematic("/path/to/project.kicad_pro");
console.log(`총 부품 수: ${schematicAnalysis.component_count}`);
console.log(`총 연결 수: ${schematicAnalysis.connection_count}`);

// 회로 패턴 인식
const patterns = await identify_circuit_patterns("/path/to/project.kicad_pro");
patterns.forEach(pattern => {
  console.log(`패턴: ${pattern.name}, 위치: ${pattern.location}`);
  console.log(`설명: ${pattern.description}`);
});

// 설계 규칙 검사 실행
const drcResults = await run_drc("/path/to/project.kicad_pro");
console.log(`DRC 위반 사항: ${drcResults.violation_count}개`);
drcResults.violations.forEach(violation => {
  console.log(`- ${violation.type}: ${violation.description}, 위치: ${violation.location}`);
});

// 부품 목록 생성
const bom = await generate_bom("/path/to/project.kicad_pro");
console.log(`총 부품 종류: ${bom.unique_parts}개`);
console.log(`총 부품 수량: ${bom.total_parts}개`);

연결된 구성 요소

  • Arduino - 아두이노 하드웨어 구현과 연계
  • Github - 설계 파일 버전 관리 및 공유
  • Everything Search - 프로젝트 및 라이브러리 파일 검색